<script>
	import store from '@/store'
	import request from '@/utils/request'
	import StoreModel from '@/common/model/Store'
	import {
		getSceneData
	} from './core/app'
	import {
		isObject
	} from './utils/util'

	export default {

		/**
		 * 全局变量 
		 */
		globalData: {},
		onLoad() {

		},
		/**
		 * 初始化完成时触发
		 */
		onLaunch({
			path,
			query,
			scene
		}) {
			// #ifdef MP
			// 小程序主动更新
			this.updateManager()
			// #endif
			// #ifdef APP-PLUS
			// app端接口获取最新版本以及url信息
			this.checkUpdateApp()
			// #endif
			// app启动参数
			this.onStartupQuery(isObject(query) ? query : {})
			// 获取商城基础信息
			this.getStoreInfo()
		},

		methods: {

			// app启动参数
			onStartupQuery(query) {
				// 获取二维码场景值
				const scene = getSceneData(query)
				// 记录推荐人ID
				const refereeId = query.refereeId ? query.refereeId : scene.uid
				refereeId > 0 && (this.setRefereeId(refereeId))
			},

			// 记录推荐人ID
			setRefereeId(refereeId) {
				store.dispatch('setRefereeId', refereeId)
			},

			// 获取商城基础信息
			getStoreInfo() {
				StoreModel.data(false)
			},

			// 小程序主动更新
			updateManager() {
				const updateManager = uni.getUpdateManager()
				updateManager.onCheckForUpdate(res => {
					// 请求完新版本信息的回调
					// console.log(res.hasUpdate)
				})
				updateManager.onUpdateReady(() => {
					uni.showModal({
						title: '更新提示',
						content: '新版本已经准备好，即将重启应用',
						showCancel: false,
						success(res) {
							if (res.confirm) {
								// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
								updateManager.applyUpdate()
							}
						}
					})
				})
				updateManager.onUpdateFailed(() => {
					// 新的版本下载失败
					uni.showModal({
						title: '更新提示',
						content: '新版本下载失败',
						showCancel: false
					})
				})
			},
			
			// 获取app是否需要更新
			checkUpdateApp() {
				// 比对版本
				const checkVersion = (currentVersion, version, url) => {
					if(currentVersion !== version) {
						plus.nativeUI.confirm(
							'有新版本更新，请点击确认更新到最新版本，以免影响使用',
							function(e) {
								if (e.index == 0) {
									plus.runtime.openURL(url);
								}
							},
							{ title: '更新提示', buttons: ['确定', '取消'], verticalAlign: 'center' }
						);
					}
				}
				// 获取版本信息
				plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
					request.post("/Setting/app_version").then(res => {
						const info = res.data.data
						const system = uni.getSystemInfoSync()
						if(system.osName === "android") {
							checkVersion(widgetInfo.version, info.android_no, info.android_url)
						}
						if(system.osName === "ios") {
							checkVersion(widgetInfo.version, info.ios_no, info.ios_url)
						}
					})
				})
			}

		}

	}
</script>

<style lang="scss">
	@import '@/static/css/common.scss';
	/* uView库样式 */
	@import "./uni_modules/vk-uview-ui/index.scss";
	/* 项目基础样式 */
	@import "./app.scss";
	/* iconfont图标库 */
	@import "./utils/iconfont.scss";
	
</style>